﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Negocio = PSE.Tools.CadastroMensagens.Negocio;
using NegocioProdutos = PSE.Tools.CadastroProdutos.Negocio;
using Entidades = PSE.Tools.CadastroMensagens.Entidades;
using EntidadesProdutos = PSE.Tools.CadastroProdutos.Entidades;
using Apresentacao = PSE.Tools.CadastroMensagens.Apresentacao;
using PSE.Tools.Util.Entidades;
using System.Data;
using PSE.Tools.CadastroProdutos.Entidades;
using PSE.Tools.CadastroMensagens.Entidades;
using CustomControls.Grid;

namespace Web.Paginas
{
    /// <summary>
    /// RelatorioMensagens
    /// </summary>
    public partial class RelatorioMensagens : Base.PaginaBase
    {
        #region [ Constantes ]

        const string idiomaPortugues = "pt-br";
        const string idiomaEspanhol = "es-es";
        const string idiomaIngles = "en-us";


        #endregion [ Constantes ]

        #region [ Eventos ]

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.IniciaGrid();
            }
        }

        /// <summary>
        /// xgrdResourcesMensagens_PageIndexChanging
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void xgrdResourcesMensagens_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            //((xGrid)sender).DataSource;
            this.xgrdResourcesMensagens.PageIndex = e.NewPageIndex;

            this.IniciaGrid();
        }

        #endregion [ Eventos ]

        #region [ Métodos Privados ]

        /// <summary>
        /// IniciaGrid
        /// </summary>
        private void IniciaGrid()
        {
            Negocio.Resources negocioResources = new Negocio.Resources();
            Negocio.Excecoes negocioExcecoes = new Negocio.Excecoes();


            MensagemFiltro mensagemFiltro = new MensagemFiltro()
            {
                StatusMensagem = "N"
            };

            var itens = negocioResources.Selecionar(new ResourceFiltro(), mensagemFiltro);
            xgrdResourcesMensagens.DataSource = itens.Select(r => new
            {
                Id = r.Id,
                ResourceKey = r.ResourceKey,
                MensagemPortugues = r.ListaMensagens.Find(obj => obj.Idioma.Sigla == idiomaPortugues) == null ? string.Empty : r.ListaMensagens.Find(obj => obj.Idioma.Sigla == idiomaPortugues).TextoMensagem,
                MensagemEspanhol = r.ListaMensagens.Find(obj => obj.Idioma.Sigla == idiomaEspanhol) == null ? string.Empty : r.ListaMensagens.Find(obj => obj.Idioma.Sigla == idiomaEspanhol).TextoMensagem,
                MensagemIngles = r.ListaMensagens.Find(obj => obj.Idioma.Sigla == idiomaIngles) == null ? string.Empty : r.ListaMensagens.Find(obj => obj.Idioma.Sigla == idiomaIngles).TextoMensagem
            }).ToList();
            xgrdResourcesMensagens.DataBind();
        }

        #endregion [ Métodos Privados ]
    }
}
